package com.mz.mattress.client.config;

import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.caffeine.CaffeineCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//import com.github.benmanes.caffeine.cache.Caffeine;

import java.util.concurrent.TimeUnit;

import java.util.concurrent.TimeUnit;

@Configuration
//@EnableCaching // 开启缓存注解支持
public class CaffeineConfig {

    // 定义缓存管理器：不同缓存用不同规则
//    @Bean
//    public CacheManager cacheManager() {

//        CaffeineCacheManager cacheManager = new CaffeineCacheManager();

//        // 1. 商品详情缓存：最多存1000个，10分钟过期
//        Caffeine<Object, Object> productCache = Caffeine.newBuilder()
//                .maximumSize(1000) // 最大缓存数量（满了会删最少用的）
//                .expireAfterWrite(10, TimeUnit.MINUTES) // 写入后10分钟过期
//                .recordStats(); // 记录缓存命中率（方便监控）
//        // 2. 热门商品缓存：最多存500个，5分钟过期（更新更频繁）
//        Caffeine<Object, Object> hotProductCache = Caffeine.newBuilder()
//                .maximumSize(500)
//                .expireAfterWrite(5, TimeUnit.MINUTES)
//                .recordStats();

//        // 把不同缓存规则加进去，用名字区分
//        cacheManager.setCaffeineMap(Map.of(
//                "productDetailCache", productCache,
//                "hotProductCache", hotProductCache
//        ));
//        return cacheManager;
//    }

}
